// 动画组件
<template>
  <div>
    <button @click="onClick">动画</button>
    <div :class="['box', isActive? 'box-active': '']"></div>

    <transition name="fade">
      <div v-if="isActive" class="box2"></div>
    </transition>

    <MySwitch v-model="isOpen" />

    <input v-model="name" />
    <input v-model="number" />
    <button @click="jump">跳转</button>
  </div>
</template>

<script>
import MySwitch from "./MySwitch.vue";
export default {
  name: "Animation",
  components: {
    MySwitch
  },
  data() {
    return {
      isActive: false,
      name: "",
      number: ""
    };
  },
  methods: {
    onClick() {
      // 实现方块变化的动画
      this.isActive = !this.isActive;
    },
    // 跳转到另一个路由页面，同时将输入的用户名、学号传递过去
    jump() {
      this.$router.push({
        name: "tab2",
        params: {
          name: this.name,
          number: this.number
        }
      });
    }
  }
};
</script>

<style scoped>
.box {
  width: 100px;
  height: 100px;
  background: blue;
  /*transition: width 2s, height 3s;*/ /**指定过渡时间 */
  transition: all 1s; /**所有属性的过渡时间都为2s */
}
.box:hover {
  /* width: 400px;
  height: 200px; */
  transform: translate(50px) scale(1.5) rotate(30deg);
}
.box-active {
  /* transform: translate(50px) scale(1.5) rotate(30deg); */
  border-radius: 50%;
  transform: translate(150px) rotate(90deg);
}

.box2 {
  width: 100px;
  height: 100px;
  background: #1981e9;
  transition: all 2s;
}

/* 出现的时候，属性的值是哪些？ */
.fade-enter-active {
  opacity: 1;
  width: 100px;
}

/* 初始状态，就是还没出现时，属性的值是哪些？ */
.fade-enter {
  opacity: 0;
  width: 0px;
}

/* 准备消失的时候，属性的值是哪些 */
.fade-leave-active {
  opacity: 1;
}
/* 消失状态，属性的值是哪些 */
.fade-leave-to {
  opacity: 0;
  width: 0px;
}
</style>